/*
 * GROLANDControleurInit.java
 *
 * Created on 1 juin 2007, 18:31
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package groland2.GROLANDControleur;

import Entity.Banque;
import Entity.Entreprise;
import Entity.Etat;
import Entity.Industrie;
import Entity.Joueur;
import Entity.Land;
import Entity.Landien;
import Entity.MaitreDuJeu;
import Session.LandRemote;
import groland2.GROLANDConstantes.GROLANDConstantes;
import java.util.Vector;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;

/**
 *
 * @author amo
 */
public class GROLANDControleurInit
{
    
    private LandRemote LandR;
    /** Creates a new instance of GROLANDControleurInit */
    public GROLANDControleurInit()
    {
        super();
        try
        {
            
            InitialContext ctx = new InitialContext();
            LandR = (LandRemote) ctx.lookup("LandRemote2");
        }
        catch (Exception ex)
        {
            System.err.println("erreur dans le lookup");
            ex.printStackTrace();
        }
    }
    public MaitreDuJeu ajouterMaitreDuJeu(HttpServletRequest request)
    {
        MaitreDuJeu m = new MaitreDuJeu(request.getParameter("nom"));
        request.getSession().setAttribute("Maitre",m);
        Vector<Joueur> vj = new Vector<Joueur>();
        Vector<Entreprise> ve = new Vector<Entreprise>();
        request.getSession().setAttribute("JOUEURS", vj);
        request.getSession().setAttribute("ENTREPRISES", ve);
        return m;
    }
    
    public Entreprise ajouterEntreprise(HttpServletRequest r /*String typeEntreprise, String nomEntreprise,double salaireBase*/)/*throws GROLANDException*/
    {
        Entreprise monbean = null;
        String typeEnt = r.getParameter("type");
        if( GROLANDConstantes.TYPE_INDUSTRIE.equals(typeEnt))
        {
            String typeInd =   r.getParameter("typeInd");
            
            if ((GROLANDConstantes.TYPE_ENTREPRISE_GLOB).equals(typeInd))
            {
                monbean = new Industrie(/*nbEnt,*/GROLANDConstantes.CAPITAL_DEPART_INDUSTRIE,r.getParameter("entreprise"),Double.parseDouble(r.getParameter("salaire")),GROLANDConstantes.RENDEMENT_GLOBS_DEPART, GROLANDConstantes.PRIX_VENTE_GLOBS_DEPART,GROLANDConstantes.OFFRE_EMPLOI_DEPART,GROLANDConstantes.NB_MARCHANDISE_DEPART,typeInd);
            }
            else
            {
                monbean = new Industrie(/*nbEnt,*/GROLANDConstantes.CAPITAL_DEPART_INDUSTRIE,r.getParameter("entreprise"),
                      Double.parseDouble(r.getParameter("salaire")),  GROLANDConstantes.RENDEMENT_LUDO_DEPART,
                      GROLANDConstantes.PRIX_VENTE_LUDO_DEPART, GROLANDConstantes.OFFRE_EMPLOI_DEPART,
                      GROLANDConstantes.NB_MARCHANDISE_DEPART, typeInd);
            }
        }
        else if (GROLANDConstantes.TYPE_ETAT.equals(typeEnt))
        {
           monbean = new Etat( GROLANDConstantes.CAPITAL_DEPART_ETAT,r.getParameter("etat"),
                    Double.parseDouble(r.getParameter("salaire")),Double.parseDouble(r.getParameter("chomage")),
                    Double.parseDouble(r.getParameter("entreprisetaux")), Double.parseDouble(r.getParameter("salarietaux")),Double.parseDouble(r.getParameter("emprunt"))  );
        }
        else if (GROLANDConstantes.TYPE_BANQUE.equals(typeEnt))
        {
            int f= 0;
            monbean = new Banque( GROLANDConstantes.CAPITAL_DEPART_BANQUE, r.getParameter("banque"),10.00,Double.parseDouble(r.getParameter("montantemprunt")),Integer.parseInt(r.getParameter("dureeemprunt")),
                   Double.parseDouble(r.getParameter("tauxemprunt")),f);
        }
        Vector<Entreprise> ve = (Vector<Entreprise>)r.getSession().getAttribute("ENTREPRISES");
        
        ve.add(monbean);
        r.getSession().setAttribute("ENTREPRISES", ve);
        return monbean;
    }
    public Joueur ajouterJoueur( HttpServletRequest request,Entreprise e)
    {
        
        Joueur j = new Joueur(request.getParameter("nom"),0);
        j.setSonEntreprise(e);
        Vector<Joueur> vj =(Vector<Joueur>)request.getSession().getAttribute("JOUEURS");
        vj.add(j);
        request.getSession().setAttribute("JOUEURS", vj);
        return j;
    }
    public void initLand(HttpServletRequest request)
    {
        Land l = new Land();
        l.setId(1);
        l.setBipCourant(1);
        Integer x1 = (Integer)request.getSession().getAttribute("ParamLandien");
        Double x2 = (Double)request.getSession().getAttribute("ParamSalaire");
        Integer x3 = (Integer)request.getSession().getAttribute("ParamGlob");
        Integer x4 = (Integer)request.getSession().getAttribute("ParamLudo");
        Integer x5 = (Integer)request.getSession().getAttribute("ParamImmigration");
        l.setNb_Landien(x1);
        l.setSalaire_minimum_landien(x2);
        l.setNbMaxEntrepriseGlob(x3);
        l.setNbMaxEntrepriseLudo(x4);
        l.setVolume_Max_immigration(x5);
        Vector<Joueur> vj =(Vector<Joueur>)request.getSession().getAttribute("JOUEURS");
        Vector<Entreprise> ve = (Vector<Entreprise>)request.getSession().getAttribute("ENTREPRISES");
        MaitreDuJeu m = (MaitreDuJeu)request.getSession().getAttribute("Maitre");
        l.setLesEntreprises(ve);
        l.setLesJoueurs(vj);
        l.setLeMaitre(m);
        LandR.persist(l);

    }
    
}
